//#include"HashTable.hpp"
//void test_time()//比较set和我们自己实现哈希表的效率，其实比较红黑树和哈希表的插入、删除、查找的效率
//{
//    
//    const size_t N = 1000000;//测试有N个
//    vector<int> v;//先将N个数据放到顺序表中
//    v.reserve(N);//给顺序表开辟N个空间
//    
//    srand((unsigned int)time(0));//控制随机树
//    for (size_t i = 0; i < N; ++i)
//    {
//        v.push_back(rand()); // N比较大时，重复值比较多
//        //v.push_back(rand()+i); // 重复值相对少
//        //v.push_back(i); // 没有重复，有序
//    }
//    
//    hash_bucket:: HashTable<int, int> h_bucket;//创建一个哈希桶的哈希表
//    close_address:: HashTable<int, int> h_c_address;//创建一个闭散列哈希表
//    set<int> s;//库里的set
//
//   
//    
////插入效率比较
//    size_t begin1 = clock();
//    for (auto e : v)
//    {
//        s.insert(e);
//    }
//    size_t end1 = clock();
//    cout << "set insert:" << end1 - begin1 << endl;
//
//    size_t begin2 = clock();
//    for (auto e : v)
//    {
//        h_bucket.Insert(make_pair(e, e));
//    }
//    size_t end2 = clock();
//    cout << "h_bucket insert:" << end2 - begin2 << endl;
//
//    size_t begin3 = clock();
//    for (auto e : v)
//    {
//        h_c_address.Insert(make_pair(e, e));
//    }
//    size_t end3 = clock();
//    cout << "h_c_address insert:" << end3 - begin3 << endl<<endl;
//    
//    
////查找效率比较
//    size_t begin4 = clock();
//    for (auto e : v)
//    {
//        s.find(e);
//    }
//    size_t end4 = clock();
//    cout << "set find:" << end4 - begin4 << endl;
//
//    size_t begin5 = clock();
//    for (auto e : v)
//    {
//        h_bucket.Find(e);
//    }
//    size_t end5 = clock();
//    cout << "h_bucket find:" << end5 - begin5 << endl;
//    
//    size_t begin6 = clock();
//    for (auto e : v)
//    {
//        h_c_address.Find(e);
//    }
//    size_t end6 = clock();
//    cout << "h_c_address find:" << end6 - begin6 << endl << endl;
//
//    cout <<"set:插入数据个数："<< s.size() << endl;
//    cout <<"h_bucket:插入数据个数：" <<h_bucket.size() << endl;
//    cout <<"h_c_address:插入数据个数：" <<h_c_address.size() << endl<<endl;
//    
//    //哈希桶结构数据
//    h_bucket.Some();
//
////删除效率比较
//    size_t begin7 = clock();
//    for (auto e : v)
//    {
//        s.erase(e);
//    }
//    size_t end7 = clock();
//    cout << "set erase:" << end7 - begin7<< endl;
//
//    size_t begin8 = clock();
//    for (auto e : v)
//    {
//        h_bucket.Erase(e);
//    }
//    size_t end8 = clock();
//    cout << "h_bucket erase:" << end8 - begin8 << endl;
//    
//    size_t begin9 = clock();
//    for (auto e : v)
//    {
//        h_c_address.Erase(e);
//    }
//    size_t end9 = clock();
//    cout << "h_c_address erase:" << end9 - begin9 << endl;
//    
//}
//int main()
//{
////    bit::TestHT1();
////    bit::TestHT2();
////    hash_bucket::TestHT1();
////    hash_bucket::TestHT2();
//    test_time();
//    return 0;
//}
